1. Field of the Invention
This invention relates to distributed processing and more particularly relates to distributed processing on a peripheral input/output channel based processing device.
2. Description of the Related Art
Data processing devices such as computer, servers and personal digital assistants (“PDAs”) execute software processes to perform a variety of functions. Unfortunately, the data processing devices often execute one or more software processes that require processing bandwidth in excess of the data processing devices' capabilities. Consequently, the execution of a software process may be delayed until sufficient processing bandwidth is available for the data processing device to execute the software process in a timely manner.
Unfortunately, the execution of some software processes cannot be delayed without adverse effects. For example, many audio and video software processes require the execution of specific tasks in specified time intervals, such as completing the processing of a video frame within a television scan cycle. Software processes that require the execution of specific tasks in specified time intervals are referred to as real time processes. If a data processing device has insufficient processing bandwidth to execute software processes such as real time processes, processing demand must be reduced or processing bandwidth must be increased.
Co-processors have been used to increase the processing bandwidth of data processing devices. A data processing device may incorporate a co-processor with a primary processor to increase processing bandwidth. The primary processor executes one or more software processes. In addition, the primary processor may assign the co-processor to execute one or more software processes. The co-processor executes the software process and communicates the results of the software process to the primary processor. Because the co-processor module executes the software process, the processing demand on the primary processor is reduced. Unfortunately, adding the co-processor increases the cost of the data processing device, even if the co-processor is not required.
Distributed processing is also used to reduce the processing demand on a data processing device without incorporating a co-processor. In such an arrangement, a data processing device executes one or more software processes. In addition, the data processing device may assign an external device such as a server to execute one or more software processes. The external device typically receives the software process from the data processing device through a computing communications channel such as a network. In addition, the external device executes the software process and communicates the results to the data processing device through the computing communications channel. The external device decreases the processing demand on the data processing device through distributed processing.
Unfortunately, many data processing devices, particularly mobile data processing devices such as laptop computers or PDAs, do not always have access to the processing bandwidth of an external device such as a server. For example, a user may use a laptop computer to mix MIDI input data from a synthesizer with digital audio at a remote site without access to a network or a server. If the MIDI input and conversion software process and the digital audio mixing software process exceed the processing bandwidth of the laptop computer, the user is not able to distribute software processes to an external device such as the server.
In addition, many data processing devices cannot connect to the computing communications channels typically used for distributed processing such as an Ethernet network or the Internet. For example, a data processing device such as a PDA may only have a peripheral input/output channel designed for communications with peripheral devices such as a universal serial bus (“USB”) connection or an infrared communications channel. As a result, users in many situations are unable to increase the processing bandwidth of data processing devices using distributed processing. For example, a user using a PDA to capture audio input data may not have the additional processing bandwidth needed to execute a speech recognition software process. The user may also be unable to communicate the speech recognition software process to an external device such as a server to reduce processing demand through distributed processing.
Consequently, a need exists for a process, apparatus, and system for distributed processing without a network or computing communications channel. Beneficially, such a process, apparatus, and system would increase the processing bandwidth of a data processing device using the original hardware capabilities of the data processing device.